前面我们讲的shell的知识只能算是基本功，要想写漂亮、功能复杂的shell脚本，还得靠日积月累的功底，最重要的还得有好的思路。在编程语言里，可以借助框架，可以使用高级算法写出高效、漂亮的代码。其实shell并没有那么多讲究，但是也是可以借鉴其他编程语言的思想的。在这一章节，阿铭将会讲解几个实用脚本，来让大家了解编写复杂脚本的一些技巧和思想，拭目以待吧！

需求： 使用shell定制各种个性化告警工具，但需要统一化管理、规范化管理。

思路：指定一个脚本包，包含主程序、子程序、配置文件、邮件引擎、输出日志等。
主程序：作为整个脚本的入口，是整个系统的命脉。
配置文件：是一个控制中心，用它来开关各个子程序，指定各个相关联的日志文件。
子程序：这个才是真正的监控脚本，用来监控各个指标。
邮件引擎：是由一个php程序来实现，它可以定义发邮件的服务器、发邮件人以及收邮件人。
输出日志：整个监控系统要有日志输出。

要求：我们的机器角色多种多样，但是所有机器上都要部署同样的监控系统，也就说所有机器不管什么角色，整个程序框架都是一致的，不同的地方在于根据不同的角色，定制不同的配置文件。

程序架构：   

                        （主目录 mon）
            ____________________|___________________________________________________________
            |              |              |                  |                             |
            bin          conf           shares              mail                         log
            |              |              |                  |                             |
            [main.sh] [ mon.conf] [load.sh 502.sh] [ mail.php mail.sh ] [ mon.log  err.log ]

bin下是主程序
conf下是配置文件
shares下是各个监控脚本
mail下是邮件引擎
log下是日志。

程序执行：
    添加至任务计划中，每分钟执行一次,为什么要先进入monitor目录，是因为子脚本的调用都是使用相对路径
    * * * * * cd /usr/local/sbin/monitor/; /bin/bash bin/main.sh
